package com.lawyers.database;
import java.sql.Connection;
import java.sql.SQLException;

import org.apache.log4j.Logger;

import com.lawyers.action.LoginAction;

/**
 *
 * @author Ariel
 */
public class MySQL extends DBAction
    {
    private static String url = null;
    private static String login = null;
    private static String password = null;
    private static Connection conn = null;
    private static Logger logger = Logger.getLogger(MySQL.class);
    public static void setURL(String newURL) {url=newURL;}
    public static void setLogin(String newLogin) {login=newLogin;}
    public static void setPassword(String newPassword) {password=newPassword;}
    public static String getURL() {return url;}
    public static String getLogin() {return login;}
    public static Connection getConnection() {return conn;}
    public static void closeConnection() { try{if(conn!=null) conn.close();}catch(Exception e) {} }

    static
        {
        url="jdbc:mysql://127.0.0.1:3306/docs";
        login="root";
        password="1234";
        }

    public static String establecerConexion()
        {
        //Cargo los drivers para poder conectarme con la base de datos
    	try {
			if(conn == null || conn.isClosed())
			try{
			   Class.forName("com.mysql.jdbc.Driver").newInstance();
			   }catch(Exception e)
			       { return "Hubo un problema al intentar cargar los drivers para acceder a la base de datos: \n\n"+e+"\n\nEs probable que no pueda conectarse con la base de datos."; }
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			logger.error("Hubo un error, por favor contacte al administrador");
			e1.printStackTrace();
			return "Hubo un error, por favor contacte al administrador";
		}

        //Inicio la conexión con la base de datos
        try{
           conn = java.sql.DriverManager.getConnection(url,login,password);
		   conn.setAutoCommit(true);
           }catch(java.sql.SQLException e)
               { 
	        	   logger.error("Hubo un problema al intentar establecer la conexión con la base de datos: \n\n"+e+"\n\nPara solucionar este problema: \na) Verifique la conectividad con el servidor \nb) Verifique que la url del servidor es correcta \nc) Verifique el nombre de usuario y el password para acceder al servidor son correctos");
	               return "Hubo un problema al intentar establecer la conexión con la base de datos: \n\n"+e+"\n\nPara solucionar este problema: \na) Verifique la conectividad con el servidor \nb) Verifique que la url del servidor es correcta \nc) Verifique el nombre de usuario y el password para acceder al servidor son correctos"; 
               	}

        return "OK";
        }
    
    public static void cerrarConexion(){
    	try {
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			logger.error("No se pudo cerrar la conexion");
		}
    }

    }
